// Przesanianie metod

#import <Foundation/Foundation.h>

// Deklaracja i definicja klasy ClassA

@interface ClassA: NSObject
{
    int x;
}

-(void) initVar;
@end
////////////////////////////
@implementation ClassA
-(void) initVar
{
    x = 100;
}
@end

// Deklaracja i definicja klasy ClassB

@interface ClassB: ClassA
-(void) initVar;
-(void) printVar;
@end
////////////////////////////
@implementation ClassB
-(void) initVar    // Dodana metoda
{
    x = 200;
}

-(void) printVar
{
    NSLog (@"x = %i", x);
}
@end
////////////////////////////
int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    ClassB  *b = [[ClassB alloc] init];

    [b initVar];  // Uywa przesonitej metody w B
    [b printVar];  // Pokazuje warto x;
    [b release];

    [pool drain];
    return 0;
}